<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>InkAnno - User Manual</title>
        
        <style type="text/css">
            .code{
                font-family:"Courier New","monotype";
                background-color:#ccccff;
                }
            html{
                margin: 0 10em 0 10em;
            }
            h1{
                text-align:center;
            }
        </style>
    </head>
    <body>
        <h1>InkAnno - User Manual</h1>
        
        <h2>Introduction</h2>
        <p>
            InkAnno is a small application written in Java to make annotations of documents
            in InkML format. Documents generated by Logitec IO Pen or the eBeam Whiteboard recording system can be imported.
            <br/>
            It was created for the annotation of such documents in the <a href="http://corpus.amiproject.org/">AMI-Corpus</a>
            where meetings are recorded. Aside of audio, video and other recordings there are such documents
            created by the Logitec IO Pen and the eBeam Whiteboard.
        </p>
        
        <h2>Installation</h2>
        
        <p>InkAnno is written in Java, it depends on Java 1.6 and therefor requires an installed JRE of this version.
            The Application is available as Eclipse Source project, as Ant project, or as jar file. Mostly you will need the Jar file.
            You can place the inkanno.jar file wherever you want.
        </p>
        
        <h2>Workflow</h2>
        <p>
            <ol>
                <li>You start the application.</li>
                <li>Select the file to open, and open it as document. The strokes will show on the workspace.</li>
                <li>Optimize the display options.</li>
                <li>Select a group of strokes or annotations, that have a special meaning.</li>
                <li>Select the type of meaning in the "annotatinon type field".</li>
                <li>Type the value of the annotation (the translation) into the "annotation field".</li>
                <li>Create the annotation.</li>
                <li>Go to 3. until there is no missing annotation.</li>
                <li>Save the annotation to a file.</li>
                <li>Close the document.</li>
            </ol>
        </p>
        <h3>Starting the application:</h3>
        <p>    In most OS you can double click the jar file to start the
            application, on other systems type
            <div class="code">java -jar inkanno.jar</div>
            to start the application.
        </p>
        <h3>Open document</h3>
        <p>    You can open three differen filetypes. 
            <dl>
                <dt>Inkanno files</dt>
                <dd>files that are created with this application</dd>
                <dt>Whiteboard files</dt>
                <dd>files that are created with the eBeam(R) system</dd>
                <dt>*.pen files</dt>
                <dd>files that are created with Logitec IO Pen</dd>
            </dl>
            
            Click "Program-&gt;Open Document" in the menu,
            click the "Open"-icon in the toolbar or press CTRL+o to get to the "open file dialog".
            Select the file to open, and press "Open".
            The strokes of the document will then be displayed on the workspace.
        </p>
        
        <h3>Optimize display</h3>
        <p>    You can change the size of the strokes by clicking "Action-&gt;Zoom (in/out)", by
            clicking those icons on the toolbar or by pressing "PAGE-UP" or "PAGE-DOWN".<br/>
            
            You can flip the document over a horizontal axis, or over a vertical axis by 
            "Action-&gt;Flip (horizontal/vertical)" or with the toolbar buttons or with CTRL-V / CTRL-H.<br/>
            
            You can make the stroke to appear more bold or more thin by moving the slider in the toolbar<br/>
            
            Each strokes has a timestamp on witch it has been drawn. You can hide each stroke, that
            is displayed before a specific time by moving the slider on the left, under the workspace.
            With the slider on the right side, under the workspace, you can hide strokes that
            are drawn after a specific time.<br/>
            Notice that for the whiteboard there can be erasing strokes. These strokes make 
            other strokes disappear that has been drawn on before in the same place. So it is
            possible that you do not see every stroke that has been drawn without moving the right
            slider.
        </p>
        
        
        <h3>Selecting strokes and annotations</h3>
        <p>    An annotation is assigned to one ore more strokes, but 
            as the annotations have a hierarchical structure it can also be assigned to other annotations.
            Annotations are displayed as a box around the selected strokes. 
            If you select a Stroke it changes its color to red. In this way you can select multiple 
            strokes. But you can also select an annotation. Then every the color of the box will be red, and the
            color of each stroke contained by the annotation becomes gray-red.<br/>
            
            To select a stroke click near it. You can add a stroke to a selection by pressing the CTRL modifier
            key when clicking. By pressing the SHIFT modifier key when clicking, all strokes between the newly selected
            and the last selected will become red. In this case, the timestamp is making the order.
            You can also press the mouse button, and then drag the mouse over the workspace, then a red square is shown.
            If you release the mouse button. Every stroke where its weight point is in the square will become red (selected).
            You can also press the key combination CTRL RIGHT. In this case the next stroke after the last selected becomes red.
            CTRL LEFT will make the last stroke unselected.<br/>
            
            To select annotations you click near the squares in the corners of the annotation box.
            You can also click on the annotation in the "annotation tree field".<br/>
        </p>
        <h3>Selecting the annotation type</h3>
        <p>    There are several types of annotations types, such as "Word", "Text line", "Graphic" etc.
            You can specify them in "Program-&gt;Preferences". This annotation type is selected in the
            "annotation type field" under the two sliders on the left side.
        </p>
        <h3>Type the annotation</h3>
        <p>    In the text field under the sliders, you type the value of the annotation. This value may be
            translation of the handwriting, describing of an graphic, or something else.
        </p>
        <h3>Create the annotation</h3>
        <p>    this will be done by pressing the ENTER key or clicking on the button right of the 
            "annotation type field".
            The annotations will then be shown in the "annotation tree field" 
        </p>
        <h3>Save annotations to a file</h3>
        <p>    Press CTRL S or click on the "save" icon and select the file where it should be saved to.</p>
        
        <h2>File format</h2>
        <p>
            <div class="code">
                <pre>
&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;
&lt;InkAnno&gt;
    &lt;Head&gt;
        &lt;Sourcefile absolutepath="/home/emanuel/ES2005d.strokes.xml" 
                relativepath="ES2005d.strokes.xml"/&gt;
        &lt;Info key="vertical-mirroring" type="Boolean"&gt;true&lt;/Info&gt;
    &lt;/Head&gt;
    &lt;Body&gt;
        &lt;Strokes&gt;
             &lt;Stroke color="blue" end_time="1035.09" id="s10" start_time="1034.89"&gt;
                &lt;Point time="1035.06" x="2217" y="6447"/&gt;
                &lt;Point time="1035.07" x="2215" y="6418"/&gt;
                &lt;Membership&gt;
                    &lt;TransRef&gt;t2&lt;/TransRef&gt;
                ...
        &lt;Transcription&gt;
            &lt;Item end_time="1041.15" id="t1" start_time="1034.89"&gt;
                &lt;Attribute type="type"&gt;Textline&lt;/Attribute&gt;
                &lt;Attribute type="transcription"&gt;This is a textline &lt;/Attribute&gt;
                &lt;Item end_time="1035.09" id="t2" start_time="1034.89"&gt;
                    &lt;Attribute type="type"&gt;Word&lt;/Attribute&gt;
                    &lt;Attribute type="transcription"&gt;This&lt;/Attribute&gt;
                    &lt;StrokeRef&gt;s10&lt;/StrokeRef&gt;
                ...
    &lt;/Body&gt;
&lt;/InkAnno&gt;
                </pre>
            </div>
            <dl>
                <dt>InkAnno</dt>
                <dd>This is the main tag, its the container of the whowl file.</dd>
                <dt>Head</dt>
                <dd>Metadata comes here.</dd>
                <dt>Sourcefile</dt>
                <dd>this tag is stores the path to the file that was originaly (not an InkAnno file) opend to create this file.</dd>
                <dt>Info</dt>
                <dd>Other meta information can be stored here. For example the orientation of the canvas, if it has to be flipped
                until now the following key values are supported
                    <dl>
                        <dt>vertical-mirroring (Boolean)</dt>
                        <dd>the canvas will be flipped verticaly</dd>
                        <dt>horizontal-mirroring (Boolean)</dt>
                        <dd>the canvas will be flipped horizontal</dd>
                    </dl>
                </dd>
                <dt>Body</dt>
                <dd>Here comes the main part of the document</dd>
                <dt>Strokes</dt>
                <dd>For every stroke, found in the original input file a Stroke tag will be stored here, so this file can stand alone</dd>
                <dt>Stroke</dt>
                <dd>For every stroke that has been drawn with a pen one such tag is in the file. the attribute color is only 
                important for the color "Erase", in such case this stroke acts as rubber stroke, it removes each stroke
                that has been drawn befor on this place. There is an "id" attribute. This will make it possible to refer from the
                annotations to the strokes. The attributes "end_time" and "start_time" shows the time when the pen has hit the paper or when it 
                has been lifted from the paper.</dd>
                <dt>Point</dt>
                <dd>Every stroke is made of a series of points. Each point has its coordinates in the attributes "x" and "y" and 
                in the attribute time there is the time in millisecond since the meeting has started (this is only true for Whiteboard data) </dd>
                <dt>Membership</dt>
                <dd>For each stroke here the references to annotations where those strokes are described are stored.</dd>
                <dt>TransRef</dt>
                <dd>Such a reference to the "id" attribute of a "Item" tag</dd>
                <dt>Transcription</dt>
                <dd>Here the annotations or transcriptions are stored. This is called Transcription because this file format may 
                not only serve for annotation reasons, but also as result format of a recognizer</dd>
                <dt>Item</dt>
                <dd>An item represents an annotation of a group of strokes or other annotations. "start_time" and "end_time" have 
                the same sence as in "Stroke" tags. The "id" attribute contains a unic id to this Item, so it can be refernced by the
                "TransRef" tags showed above.</dd>
                <dt>Attribute</dt>
                <dd>An "Item" has multiple "Attribute" tags. Each of them has a type and a value. The most important "Attribute" tag 
                as the attribute "type" set to "transcription", so it is the actual annotation of the strokes and "Item" contained by
                this "Item". An other important "Attribute" is the attribute type. It stores the annotation types. 
                There may be more such "Attributes" but not now implemented in InkAnno.</dd>
                <dt>StrokeRef</dt>
                <dd>Whit this tag it is defined what strokes this annotation is meant for.</dd>
            </dl>
        </p>
        <h2>Configuration</h2>
        <p>
            The InkAnno application is configured by a configuration file. This configuration file is stored in the home
            directory of the user (in Windows its the ApplicationData directory, or so). Its called ".inkanno.properties".
            Two configuration values are stored here.
            <dl>
                <dt>file_chooser_dir</dt>
                <dd>Thats the path of where you opend the file chooser in InkAnno.</dd>
                <dt>annotypes</dt>
                <dd>This is a whitespace seperated list of annotation types. They will appear in the "annotation type field" in InkAnno.
                Default values here are Word,Textline,Graphic,Arrow,Structure,Garbage.</dd>

            </dl>
        </p>
        <h2>Author</h2>
        <p>Emanuel Indermühle &lt;emanuel at inthemill dot ch&gt;</p>
        <h2>License</h2>
        <p>InkAnno is Free Software released under the GNU <a href="http://www.gnu.org/licenses/gpl.html"> General Public License></a> (GPL)</p>
    </body>
</html>
